package com.reebake.ideal.message.entity;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

 /**
 * 消息模板
 * 
 */
@Schema(name = "消息模板", description = "")
@TableName("idl_message_template")
@Data
public class MessageTemplate implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Schema(name = "主键", description = "")
    @TableId
    private String messageTemplateId;

    /** 模板代码 */
    @Schema(name = "模板代码", description = "")
    private String templateCode;

    /** 标题 */
    @Schema(name = "标题", description = "")
    private String title;

    /** 媒介类型 */
    @Schema(name = "媒介类型", description = "")
    private String mediumType;

    /** 消息类型 */
    @Schema(name = "消息类型", description = "")
    private String messageType;

    /** 消息分组 */
    @Schema(name = "消息分组", description = "")
    private String messageGroup;

    /** 业务类型 */
    @Schema(name = "业务类型", description = "")
    private String bizType;

    /** 内容 */
    @Schema(name = "内容", description = "")
    private String content;

    /** 附件(名称,资源编号;) */
    @Schema(name = "附件(名称,资源编号;)", description = "")
    private String attachments;

    /** 通道编号 */
    @Schema(name = "通道编号", description = "")
    private String channelId;

    /** 外部模板编号 */
    @Schema(name = "外部模板编号", description = "")
    private String outTemplateId;

    /** 状态 */
    @Schema(name = "状态", description = "")
    private String status;

    /** 允许进入待处理 */
    @Schema(name = "允许进入待处理", description = "")
    private Boolean enablePending;

    /** 是否开启投递 */
    @Schema(name = "是否开启投递", description = "")
    private Boolean enableDelivery;

    /** 递送起始时间 */
    @Schema(name = "递送起始时间", description = "")
    private String deliveryStartTime;

    /** 递送结束时间 */
    @Schema(name = "递送结束时间", description = "")
    private String deliveryEndTime;

    /** 是否批量发送 */
    @Schema(name = "是否批量发送", description = "")
    private Boolean isBatchSend;

    /** 是否分开发送 */
    @Schema(name = "是否分开发送", description = "")
    private Boolean isSeparateSend;

    /** 配置参数 */
    @Schema(name = "配置参数", description = "")
    private String param;

    /** 启用通知 */
    @Schema(name = "启用通知", description = "")
    private Boolean enableNotification;

    /** 备注 */
    @Schema(name = "备注", description = "")
    private String remark;

    /** 删除标识 */
    @Schema(name = "删除标识", description = "")
    @TableLogic
    private Boolean deleteFlag;

    /** 租户号 */
    @Schema(name = "租户号", description = "")
    private String tenantId;

    /** 乐观锁 */
    @Schema(name = "乐观锁", description = "")
    private Integer revision;

    /** 创建人 */
    @Schema(name = "创建人", description = "")
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 创建时间 */
    @Schema(name = "创建时间", description = "")
    @TableField(fill = FieldFill.INSERT)
    private Date createdTime;

    /** 更新人 */
    @Schema(name = "更新人", description = "")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /** 更新时间 */
    @Schema(name = "更新时间", description = "")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updatedTime;

}